code: def save(self):
          
          with rconnect() as conn:
              try:
                  self.validate()
              except ValidationError as e:
                  log.warn(e.messages)
                  raise
              except ModelValidationError as e:
                  log.warn(e.messages)
                  raise
              except ModelConversionError as e:
                  log.warn(e.messages)
                  raise
              except ValueError as e:
                  log.warn(e)
                  raise
              except FrinkError as e:
                  log.warn(e.messages)
                  raise
              except Exception as e:
                  log.warn(e)
                  raise
              else:
                  # If this is a new unsaved object, it'll likely have an
                  # id of None, which RethinkDB won't like. So if it's None,
                  # generate a UUID for it. If the save fails, we should re-set
                  # it to None.
                  if self.id is None:
                      self.id = str(uuid.uuid4())
                      log.debug(self.id)
  
                  try:
                      query = r.db(self._db).table(self._table).insert(
                          self.to_primitive(),
                          conflict="replace"
                      )
                      log.debug(query)
                      rv = query.run(conn)
                      # Returns something like this:
                      # {
                      #   u'errors': 0,
                      #   u'deleted': 0,
                      #   u'generated_keys': [u'dd8ad1bc-8609-4484-b6c4-ed96c72c03f2'],
                      #   u'unchanged': 0,
                      #   u'skipped': 0,
                      #   u'replaced': 0,
                      #   u'inserted': 1
                      # }
                      log.debug(rv)
                  except Exception as e:
                      log.warn(e)
                      self.id = None
                      raise
                  else:
                      return self
docs: Save the current instance to the DB