Improve performance over inserting each item individually
also refactor public and internal api to support transaction between multiple methods #2