<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def insert_system(cur, system_name, encoded_data=None):
 """Insert a system name into the cache. Args: cur (:class:`sqlite3.Cursor`):
 An sqlite3 cursor. This function is meant to be run within a :obj:`with` statement. system_name (str):
 The unique name of a system encoded_data (dict, optional):
 If a dictionary is provided, it will be populated with the serialized data. This is useful for preventing encoding the same information many times. """

    if encoded_data is None:
        encoded_data = {}

    if 'system_name' not in encoded_data:
        encoded_data['system_name'] = system_name

    insert = "INSERT OR IGNORE INTO system(system_name) VALUES (:system_name);"
    cur.execute(insert, encoded_data)