Это не слишком много запросов к базе. Это то, как надо работать с базой.
insert into tablename (id,blabla) values(1,'werwer'),(2,'wqewqe'),(3,'qwewe');
Такой код не нужен. Если таких данных будет много вы просто по памяти вылетите.
У вас
$em->flush();
за циклом, все верно!