@abstractmethod<EOL><INDENT>def create(self, session):<DEDENT>
pass<EOL>
Inserts a new Session record into the underling EIS (e.g. Relational
database, file system, persistent cache, etc, depending on the Store
implementation).  After this method is invoked, the Session.session_id
property obtained from the argument must return a valid session
identifier.  That is, the following should always be true:

    session_id = create(session)
    session_id.equals(session.session_id) == True

Implementations are free to throw any exceptions that might occur due
to integrity violation constraints or other EIS related errors.

:param session: the Session object to create in the EIS
:returns: the EIS id (e.g. primary key) of the created
          Session object