docs: def WriteClientSnapshot(self, snapshot, cursor=None):
      """Write new client snapshot."""
      insert_history_query = (
          "INSERT INTO client_snapshot_history(client_id, timestamp, "
          "client_snapshot) VALUES (%s, FROM_UNIXTIME(%s), %s)")
      insert_startup_query = (
          "INSERT INTO client_startup_history(client_id, timestamp, "
          "startup_info) VALUES(%s, FROM_UNIXTIME(%s), %s)")
  
      now = rdfvalue.RDFDatetime.Now()
  
      client_platform = snapshot.knowledge_base.os
      current_timestamp = mysql_utils.RDFDatetimeToTimestamp(now)
      client_info = {
          "last_snapshot_timestamp": current_timestamp,
          "last_startup_timestamp": current_timestamp,
          "last_version_string": snapshot.GetGRRVersionString(),
          "last_platform_release": snapshot.Uname(),
      }
      update_clauses = [
          "last_snapshot_timestamp = FROM_UNIXTIME(%(last_snapshot_timestamp)s)",
          "last_startup_timestamp = FROM_UNIXTIME(%(last_startup_timestamp)s)",
          "last_version_string = %(last_version_string)s",
          "last_platform_release = %(last_platform_release)s",
      ]
      if client_platform:
        client_info["last_platform"] = client_platform
        update_clauses.append("last_platform = %(last_platform)s")
  
      update_query = (
          "UPDATE clients SET {} WHERE client_id = %(client_id)s".format(
              ", ".join(update_clauses)))
  
      int_client_id = db_utils.ClientIDToInt(snapshot.client_id)
      client_info["client_id"] = int_client_id
  
      startup_info = snapshot.startup_info
      snapshot.startup_info = None
      try:
        cursor.execute(
            insert_history_query,
            (int_client_id, current_timestamp, snapshot.SerializeToString()))
        cursor.execute(
            insert_startup_query,
            (int_client_id, current_timestamp, startup_info.SerializeToString()))
        cursor.execute(update_query, client_info)
      except MySQLdb.IntegrityError as e:
        raise db.UnknownClientError(snapshot.client_id, cause=e)
      finally:
        snapshot.startup_info = startup_info