But you are right about certification of an object. More broadly, this is the same work flow I use to preserve attributes in general -- assign the pre-modified object's attributes to a variable (at least the ones I want to preserve) and then re-assign them after some non-attribute preserving function has been ran.
This is what I do to get by, but I am always open to better, safer ways of doing things.