Чтобы не углубляться и не расписывать свою задачу со всеми деталями которые не имеют отношения к вопросу,
Лучше бы вы задачу расписали, из вашего решения ни цель, ни проблема не видны. Вообще вопрос скорее всего возник из непонимания процесса работы в целом, что можно было бы решить 2 словами.
Как реализовать так, чтобы пользователь не получал ошибку, а просто ждал ответа от сервера.
Какой ответ? Нужно посчитать и отдать результат или достаточно чтобы ответ был "все ок"?
В ходе исследования появились мысли, что Nginx подойдет для этой задачи лучше чем Apache.
В целом - да, нжинкс быстрее и легче, но есть нюансы. Кроме того, гораздо важнее режим работы пыха, фпм - маст хэв. Но при вашей задаче имхо это вообще не важно.
Можно ли на сервере с такими данными реализовать эту задачу чтобы сервер и СУБД не отваливались?
Вообще не вижу проблем, Даже если 100 человек одновременно кликнет - особой беды не будет. Во первых, на каждого будет выделен отдельный трит пхп, во вторых - такие мелкие записи вообще ниачем, мускуль их может херачить сотнями в секунду.
В целом: Решение с транзакциями вообще спорное, и не понятно зачем здесь воткнуто (интересно ваше решение - откудо оно и зачем? И в догонку - почему они так редко используются, а в вашем случае "очень нужны"?).
Как можно это синтетически протестировать?
apache jmeter или yandex tank.
Вывод
Скорее всего переживания ваши ниачем, но если вы по секрету расскажете нам что за уникальную вундервафлю вы строите, возможно ответ будет точнее и осмысленнее.