docstr: Save the given session.
  
  Parameters
  ----------
  session_info
      The SessionInfo being saved.
  
  Raises
  ------
  SessionStorageError
      Raised if an error occurs while saving the given session.
code: def save(self, session_info: SessionInfo) -> None:
      """Save the given session.
  
      Parameters
      ----------
      session_info
          The SessionInfo being saved.
  
      Raises
      ------
      SessionStorageError
          Raised if an error occurs while saving the given session.
      """
      raise NotImplementedError
  
imports: from abc import abstractmethod
  from dataclasses import dataclass
  from typing import Callable, Dict, List, Optional, cast
  from typing_extensions import Protocol
  from streamlit.proto.ForwardMsg_pb2 import ForwardMsg
  from streamlit.runtime.app_session import AppSession
  from streamlit.runtime.script_data import ScriptData
  from streamlit.runtime.scriptrunner.script_cache import ScriptCache
  from streamlit.runtime.uploaded_file_manager import UploadedFileManager
label_desc: Use image node_id 2 for calling the SessionStorage obj's underlying member method code with example usage: obj.save(session_info) without return types