Optimistic locking zakłada rzadkie konflikty: aktualizujesz z kontrolą wersji/timestamp i robisz retry przy konflikcie. Pessimistic locking blokuje wiersze z góry (np. `SELECT ... FOR UPDATE`), żeby inni nie mogli ich zmienić.
SELECT * FROM accounts WHERE id = 1 FOR UPDATE;