Depending on the size of the blob you might not want to use `WITHOUT ROWID`. I had a similar table with uuid keys and blobs of 40kb size on average and `WITHOUT ROWID` really tanked performance.
Neat optimization, I've never seen that before. Thanks for sharing.
It's not clear in the code how you're batching the writes. Could the performance improvement be mostly explained by batches?