insert expects columns, upsert expects rows.
insert tries to infer the structure of the input from the data - it runs into trouble with (atom, list, atom).
See https://groups.google.com/forum/#!topic/personal-kdbplus/JxPLxlmIzJs for a more thorough explanation
N.B.: Borror writes:
http://code.kx.com/q4m3/9_Queries_q-sql/#91-inserting-records
The upsert function is superior to insert and is to be preferred. We include insert for nostalgia only.