The idea behind NATIVE is to not do any additional checks. Instead a dialect would just raise a TupleAlreadyExistsException when issuing a write causing a duplicate-key-exception of sorts. So that's pretty much what you describe.