It's not clear in the code how you're batching the writes. Could the performance improvement be mostly explained by batches?
In his 2nd example he’s doing the same thing, except he first sorts the data for each of those 1M INSERTs, leading to a 2-3x speedup.