Проблема в том, что при ошибке ты теряешь весь пакет. т.е. можно писать и большими пакетами (и это и быстрее и к серверу меньше запросов, меньше загрузка), но обрабатывать исключения и при возникновении пробегать таки циклом и сохранять что проходит. если логи важные, что то, что не проходит, писать в отдельную таблицу ошибочных данных, на всякий случай