Since I sort of started this BLOB tangent, I thought I would chime in. The BLOB should be retrieved as Vector{UInt8}
(or a stream of Uint8) as you described. It should also be possible to do something like (apologies if this is not great julia code).
a = 4
io = IOBuffer()
write(io, rand(10,5))
execute("insert into foo (int_col, blob_col) values (?,?)",(a,io))
execute("insert into foo (int_col, blob_col) values (5,?)",(b"hello",))
or something similar.