Oh right, you want to override how the *model* `.save()` is called?
Yes you'd need to override both `.create()` and `.update()`.
For `create()` you'd want to clone the default method but instantiate and then save the instance, rather than using `ModelClass.objects.create()`.
Instantiating and returning an unsaved model instance isn't something I want the serializer API to provide for.
If you really want to do something like that, just take the .validated_data off the serializer and use that directly.
Personally if you *really do* want to add in some validation that runs during the object save, I'd just always have it run, and raise hard assertion errors if it fails.
(I'm not clear if you're expecting to handle those 'ValidationErrors' or not, but generally validation should always run pre-save, not during save.)
Cheers,
Tom