Based on the description of bulkInsert [1], it says:
This function make no guarantees about the atomicity of the insertions.
I think what it actually does it, inserting rows one-by-one. Here comes the question: does it really improves performance, compared to calling insert [2] one-by-one, since they are actually doing the same thing?