Sugestão - Bloquear item com um usuário (ex: onunload, lock de tabela) mostrar "Item já está em uso"

Oi gente!

Preciso muitíssimo da sua ajuda, vou detalhar a tarefa que tenho de fazer:

Há uma tela (caso de uso) que saem vários itens (sub casos de uso) tais como Rejeitar Proposta, Formalizar Proposta e Imprimir Proposta, todavia
só um usuário pode acessar a tela por vez… Como você faria para controlar isso? Nos foi sugerido fazer o seguinte: Quando o usuário seleciona um item
como Rejeitar Proposta, por de trás aciona um método chamado isBloqueio que é um tipo boolean se não tiver bloqueado vai chamar o método insertBloqueio
e depois que o usuário sai ele chama o método deleteBloqueio. Só que há que pequenas falhas pois no mundo real se o usuário sair via botão voltar ou clique
no x do navegador para fechar a janela acabará não acionando o método deleteBloqueio e simplemente o item ficará travado pois não foi destravado com o deleteBloqueio. Foram
comentados o onunload no brownser mas vímos que dará pau futuramente e o lock de tabela que é uma solução a pensar com mais cuidado.

Valeu pela atenção!

Abs,
André AS