да, такая ситуация может быть, в твоем случае тебе уже предложили решение, упросив запрос, но бывают другие случаи, в которых стоит использовать sql транзакции, правильно навешивать unique индексы, чтобы не получалось дублей при конфликтующих запросах