I've encountered this comment on reddit:
I love Postgres but the one thing I wish is had is pessimistic locking. It's just such a huge help when you need multi-statement queries when multiple sources of writes against the same data are coming in.
But then there's this:
Row-level Lock Modes
FOR UPDATE causes the rows retrieved by the SELECT statement to be locked as though for update. This prevents them from being locked, modified or deleted by other transactions until the current transaction ends.
Is that or is it not the same thing as pessimistic locking?