Была похожая ситуация только с логами, которые тоже писались в базу. Тут надо делать очередь, то есть всё закидывается в очередь и каждый в очереди проверяет, свободное ли место.
Копать надо в сторону ACID транзакций, блокировок записей и обновлений записей с условиями. (На примере SQL: update table set free = 0 where id=1 and free =1 and updated =13677742126)
Способов куча - от добавления заголовков с предпочитаемым языком до query параметров. Зависит от того с чем и как надо работать. Understand your data, как говорится