Какие аргументы в пользу использования транзакций в бд?
Главный аргумент за использование транзакций, это не запись связанных данных, - а корректная обработка конкурентных запросов, в тех случаях когда это критично.
Условно писать без транзакций биллинг - показатель профнепригодности, а вот какой нибудь бложик - вполне нормально.
Единственное, что можно возразить, это то, что при использовании встроенных возможностей БД гораздо меньше кода - зачем писать то, что уже хорошо реализовано в БД?
А так, при полном покрытии кода тестами и нормальной архитектуре, большой разницы нет. Разве что писать транзакции на уровне приложения - это какое-то странное извращение. А вот без внешних ключей вполне можно обойтись. Я их всегда ставлю, но могу понять тех, кто на это забивает.