O PostgreSQL usa bloqueios para coordenar acesso concorrente e prevenir conflitos. Graças ao MVCC, leituras geralmente não precisam de bloqueios (leitores não bloqueiam escritores), mas escritas adquirem bloqueios em nível de linha, e vários tipos de bloqueio coordenam operações. Entender bloqueio ajuda a evitar contenção e deadlocks.
MVCC significa que leituras geralmente não são bloqueadas
Because of MVCC, plain SELECTs do NOT take row locks — they read a consistent snapshot.
→ Readers don't block writers, writers don't block readers (a key Postgres advantage).
Locking mainly comes into play for WRITES and explicit locking.
