Using db_insert with a reserved keyword as the column name
You can try to pass column name in `parenthesis` to db_insert. Just be sure you escaped them if needed, as they have their own meaning in php itself.
If this does not work, well, you can:


fill a bug against core, or post in existing one.
use good old db_query
Or use thesaurus to get rid of reserved words from your app. There is always a "good reason" to use them, of course there is for any common word, but word-oriented languages simply have to reserve some words.