Deixe o banco de dados lidar com o bloqueio para você. O PostgreSQL, assim como qualquer outro banco de dados, possui código de bloqueio que bloqueará as linhas apropriadas para modificação conforme necessário. O PostgreSQL usa algo chamado Multi-Version Concurrency Control isso efetivamente significa que os leitores nunca bloquearão ou serão bloqueados por escritores.
Com sua solução atual, à medida que o número de clientes cresce, você verá o bloqueio aumentar até que seu aplicativo se torne completamente inutilizável. Novamente, deixe que o banco de dados gerencie o bloqueio para você - é muito eficaz na resolução de bloqueios conforme necessário.