I figured `_set_last_timestamp` method is prefixed to marked as private and is  used only within `raw_get` also (save for the `__init__` where it is only used to initialize the default values). It really should *never* be used elsewhere.

That said, I am fine with switching the way this method is called, but there are two cases where the xml tree is loaded already with the odd case for the cached exception. What I would have done is also cache the raw xml of the exception to maintain consistency of the cached object types.

Let me know what you think is the better solution, which is go ahead with removing the tree optional argument, leave as is, or cache the error tree instead.