<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, subject):
 """ Saves the subject's state to the subject's ``Session`` only if session storage is enabled for the subject. If session storage is not enabled for the specific Subject, this method does nothing. In either case, the argument Subject is returned directly (a new ``Subject`` instance is not created). :param subject: the Subject instance for which its state will be created or updated :type subject: subject_abcs.Subject :returns: the same Subject passed in (a new Subject instance is not created). """

        if (self.is_session_storage_enabled(subject)):
            self.merge_identity(subject)
        else:
            msg = ("Session storage of subject state for Subject [{0}] has "
                   "been disabled: identity and authentication state are "
                   "expected to be initialized on every request or "
                   "invocation.".format(subject))
            logger.debug(msg)

        return subject