code: def create(cls, user_id, client_id, token, secret,
                 token_type='', extra_data=None):
          
          account = RemoteAccount.get(user_id, client_id)
  
          with db.session.begin_nested():
              if account is None:
                  account = RemoteAccount(
                      user_id=user_id,
                      client_id=client_id,
                      extra_data=extra_data or dict(),
                  )
                  db.session.add(account)
  
              token = cls(
                  token_type=token_type,
                  remote_account=account,
                  access_token=token,
                  secret=secret,
              )
              db.session.add(token)
          return token
docs: Create a new access token.
  
          .. note:: Creates RemoteAccount as well if it does not exists.
  
          :param user_id: The user id.
          :param client_id: The client id.
          :param token: The token.
          :param secret: The secret key.
          :param token_type: The token type. (Default: ``''``)
          :param extra_data: Extra data to set in the remote account if the
              remote account doesn't exists. (Default: ``None``)
          :returns: A :class:`invenio_oauthclient.models.RemoteToken` instance.