insert/update/replace/ignore functionality