That would be a colossal mistake. Imagine the chaos if the interrupt occurred while you were in the routine.
There are some solutions. The best one is to duplicate the code using different file registers if you need temporary storage.
The general rule is:
"You cannot modify any variable in an interrupt routine and the main program unless you disable interrupts in the main program while you modify the variable"
The general rule is:
"You cannot modify any variable in an interrupt routine and the main program unless you disable interrupts in the main program while you modify the variable"
A simple way to make this so you can use the routine in your main code and the ISR would be to zero the seconds variable before you call update from the main code. This will ensure that the ISR will never call the code at the same time as the background code.
An extra concern as well - it's a BAD idea to call subroutines in an ISR at all, because you've only got a VERY limited stack size - so calling subroutines in an ISR means you must reduce stack useage even further in your main program.
So if you do it, watch the depth of your subroutine calls in the main program!.