2
When updating the module, the template is fetched by a Smarty function that has the purpose of putting it in the templates_c directory (weaving a bit, not entirely certain of all the details in this area)
Since the template is "run" at a time where there are no objects loaded in memory (as the corresponding PHP file is not run) it will not have the objects to call the methods on. This is not a big problem with arrays as the worst thing that can happen is a notice about an undefined index - but calling a class method on a non-object is a fatal PHP error.
A workaround (that I don't know the consequences of, but I have not seen any negative ones, yet) is to enclose the code in the template, where you use the object, with
<{if $object}>
blah blah blah
<{/if}>
so it will not be executed when the $object variable is not set (as in admin, when updating the module)