Postgres uses MVCC (multi‑version concurrency control): updates create new row versions while readers use a snapshot to see a consistent view. That means readers can read old versions without blocking writers; VACUUM later cleans up dead tuples.