Как лучше реализовать?
Вы сами озвучили недостаток. (и каждый вызов функции происходит insertво вторую таблицу)
К чему он может приводить? Да много к чему. К примеру, у вас приложение, которое работает с финансами. Вы загрузили 15 элементов из 70 и произошел сбой. Куда копать? что делать? 
Решение - формировать одним запросом и сразу посылать его. 
Читайте про транзакции, оберните вашу функцию в транзакцию.
Вы сами озвучили недостаток. (и каждый вызов функции происходит insertво вторую таблицу)
К чему он может приводить? Да много к чему. К примеру, у вас приложение, которое работает с финансами. Вы загрузили 15 элементов из 70 и произошел сбой. Куда копать? что делать? 
Решение - формировать одним запросом и сразу посылать его. 
Читайте про транзакции, оберните вашу функцию в транзакцию.