Вопрос одновременного доступа к данным чаще всего не имеет общего решения, которой подойдет для любого случая и нужно каждый конкретный случай рассматривать отдельно.
Для приведенного случая атомарной записи в базу пример вам уже привели. Для другого случая - будет какое-то другое решение. Если речь идет именно о совместном доступе к данным в реляционной базе, то можете попробовать поставить другой
уровень изоляции транзакций, например при уровне Serializable и использовании
транзакций - они все будут выполнятся последовательно и соответственно проблем с одновременным доступом не будет, но появятся новые.