Deje que la base de datos maneje el bloqueo por usted. PostgreSQL, así como cualquier otra base de datos, tiene un código de bloqueo que bloqueará las filas apropiadas para modificarlas según sea necesario. PostgreSQL usa algo llamado Control de concurrencia de múltiples versiones eso significa que los lectores nunca bloquearán ni serán bloqueados por los escritores.
Con su solución actual, a medida que crece la cantidad de clientes, verá que aumentan los bloqueos hasta que su aplicación se vuelve completamente inutilizable. Una vez más, deje que la base de datos gestione los bloqueos por usted; es muy eficaz para resolver los bloqueos según sea necesario.