<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def save(self, **kwargs):
 """ Saves the wrapped notebook state. If an output path is known, this triggers a save of the wrapped notebook state to the provided path. Can be used outside of cell state changes if execution is taking a long time to conclude but the notebook object should be synced. For example, you may want to save the notebook every 10 minutes when running a 5 hour cell execution to capture output messages in the notebook. """

        if self.output_path:
            write_ipynb(self.nb, self.output_path)