А сейчас у меня этап, когда я делаю как мне хочется, но при этом пытаюсь изучить как нужно писать правильно с точки зрения архитектуры.
Я решаю используя идею асинхронки. Вместо ->save() я пишу класс Database, который делает ->persistForSave() и в конце скрипта или в середине (если это скрипт здоровенный типа парсера) вызываю ->flush(), в тот момент когда уже точно уверен что вся логика прошла верно.