Трябва да блокира само обекта.
Диалектът за хибернация на PostgreSQL добавя for update
в случай на блокиране на запис:https://github.com/hibernate/hibernate-orm/blob/master/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQL81Dialect.java#L549 (по-новите версии просто използват същата реализация)
for update
се третира поредно от PostgreSQL:https://www.postgresql .org/docs/9.5/static/explicit-locking.html