FWIW: you can easily determine whether apply_state() has the save_state named parameter.
Code:
import inspect
x = inspect.signature(self.gui.library_view.apply_state)
has_save_state = 'save_state' in x.parameters
inspect.signature() appeared in python 3 so this won't work on calibre 4 and earlier, so your exception method might be a better solution. Or directly checking the calibre version.