def METHOD_NAME(self, work_item):
    """
    Adds a work item to the database.
    :param work_item: The work item to add to the database. Because the ID
                      and archive fields are auto-generated,
                      you don't need to specify them when creating a new item.
    :return: The generated ID of the new work item.
    """
    sql = (f"INSERT INTO {self._table_name} (description, guide, status, username) " 
           f" VALUES (:description, :guide, :status, :username)")
    sql_params = [
        {'name': 'description', 'value': {'stringValue': work_item['description']}},
        {'name': 'guide', 'value': {'stringValue': work_item['guide']}},
        {'name': 'status', 'value': {'stringValue': work_item['status']}},
        {'name': 'username', 'value': {'stringValue': work_item['username']}},
    ]
    results = self._run_statement(sql, sql_params=sql_params)
    work_item_id = results['generatedFields'][0]['longValue']
    return work_item_id