As I understand it, you only need to save the xmodule if you have told it to render (as xblocks are allowed to change data when rendering). Does your container actually get to render its own view? If not, I don't think you need to save.

It would be good for @cpennington to review this code.