With Doctrine2, yes! http://doctrine-orm.readthedocs.org/en/latest/reference/batch-processing.html
Doctrine2 uses the UnitOfWork pattern, so basically you can "persist" multiple records, and then right at the end run flush
- and it will figure out the most efficient method to insert/update/etc all the data. It's pretty clever.