Вы запрашиваете поведение базы данных по умолчанию.
Вы можете использовать «SELECT ...... FOR UPDATE», и ядро базы данных заблокирует строку и сделает ее недоступной для других пользователей.
Однако это хорошая практика, если ваша программа хочет хранить данные в течение короткого промежутка времени (менее 1 секунды), и ваше приложение, которое хранит данные гораздо дольше, столкнется с множеством проблем взаимоблокировки и конфликтов.
Вы можете сделать это в коде приложения, имея пару столбцов, таких как "RESERVED_BY_USER" и "RESERVED_UNTIL", которыми приложения могут управлять сами.
Однако из того, что вы описываете, я думаю, что вам действительно нужна очередь, как описано здесь