Ваша проблема в том, что connection.commit() выполняется ДО запроса c.execute(sql), а должен выполняться ПОСЛЕ, т.к. commit() подтверждает те изменения, которые произошли в базе, как бы фиксирует их.
import pymysql
def get_connection():
connection=pymysql.connect(host='localhost', user='root', password='', db='test', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
print ("Успешное подключение к базе данных!\n\n\n")
return connection
connection = get_connection()
c = connection.cursor()
sql = "INSERT INTO test (id, name) VALUES (10, 'test')"
c.execute(sql) # <<<--------- сперва добавляете данные в базу
connection.commit() # <<<--------- затем изменения подтверждаете (сохраняете)
connection.close()