Dbagent upsert

These patches adds a feature called upsert (insert or update if exists).
How about `updateOnDuplicate`?

"insert" and "upsert" is same layer word. So it is strange for me that "upsert" is included in "insert".