Laissez la base de données gérer le verrouillage pour vous. PostgreSQL, ainsi que toutes les autres bases de données, a un code de verrouillage qui verrouille les lignes appropriées pour modification si nécessaire. PostgreSQL utilise quelque chose appelé Multi-Version Concurrency Control cela signifie effectivement que les lecteurs ne bloqueront jamais ou ne seront jamais bloqués par les écrivains.
Avec votre solution actuelle, à mesure que le nombre de clients augmente, vous verrez le verrouillage augmenter jusqu'à ce que votre application devienne complètement inutilisable. Encore une fois, laissez la base de données gérer le verrouillage pour vous - elle est très efficace pour résoudre les verrous selon les besoins.