Drupal 8 REST add custom error messages to existing core /entity/user/ resource
You can't return a response from a presave hook. You can however throw an exception, which in a json route will return a json error message:

throw new NotFoundHttpException('Region not found!');


If you want to change the default error response, implement an exception subscriber to catch this exception and return your own response. 

For reference the default exception handler: ExceptionJsonSubscriber::on4xx