I´m using an ORM (Devart´s) to access the database, so, I cannot "select ... FOR UPDATE". The application paradigm is that a user have a list of records (after a query) and she could update or delete any of them as the business rules allows it. So, at least an advisory lock is a must. I´m convinced by now: I would stay with advisory locks... expecting no app crash could occur...
I would say to fix this in the ORM rather than reinvent what the database already gives you in the database.