Make onDuplicateKey take a combination of columns and column=>expression pairs