Моей первой идеей было бы установить флаг в методе preSave () и проверить этот флаг в методе save ().Но я думаю, что skipOperation () это то, что вы ищете:
public function preSave(Doctrine_Event $event)
{
if (!$condition) {
$event->skipOperation();
}
}