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