1. Запрос CREATE TABLE не нужно делать при каждом сообщении. Перенеси его в код, который вполняется при запуске бота.
2.
Не используй f-строки для формирования запросов. Почитай про
подстановку параметров запроса.
3. cur.execute() не вернёт тебе None или данные. Вызови метод fetchone(), чтобы получить одну строку данных, или None если данных нет.
4. Если ты используешь sqlite, почитай про синтаксис INSERT ON CONFLICT DO UPDATE. Позволяет выполнить операцию в духе "создай запись, а если такая уже есть - обнови её", и тем самым свернуть твой if в один запрос. В других СУБД есть аналогичная возможность.