Deve bloquear apenas a entidade.
O dialeto de hibernação do PostgreSQL adiciona
for update
em caso de bloqueios de gravação:https://github.com/hibernate/hibernate-orm/blob/master/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQL81Dialect.java#L549 (versões mais recentes apenas usam a mesma implementação) for update
é tratado em linha pelo PostgreSQL:https://www.postgresql .org/docs/9.5/static/explicit-locking.html