should it be named `createOrUpdate()`? Or just `merge`?