If you're saving in a controller, you really should flush the changes...
Although, good practice is to put transactional code in a service. Also, if it is still not persisting your changes
you should check the object for errors:
And actually, you should be propagating those errors back up to the user.
The above code assumes a lot. You should adjust for your actual code and use case.