Как научить чат-бота в телеграм воспринимать буквы?
Я пришлю тебе

'';drop table config;select bitcoin from config

И таблица config будет удалена. Это называется SQL-инъекцией.

Ты не оборачиваешь строку в кавычки, разумеется, ничего хорошего не получится. В случае цифр, конечно, запрос без кавычек выполняется успешно. Но вообще это неправильный способ использования SQL, так как любая кавычка его сломает, а тщательно подготовленный текст (пример я привёл) вообще вызовет не тот запрос, который планировался.

Правильно использовать плейсхолдеры:

q.execute("UPDATE config SET bitcoin=? WHERE id=?", (new_bitcoin, user_id))

В этом случае база данных сама правильно всё подставит и выполнит.
q.execute("update config set bitcoin = " + str( new_bitcoin ) + " where id = 1")
За такое надо бить по рукам. Железной линейкой. Поясню почему:
если new_bitcoin присвоить число 1234 или строку "1234", то получим запрос
update config set bitcoin = 1234 where id = 1
Этот запрос синтаксически корректен с точки зрения языка SQL.
А вот если new_bitcoin присвоить строку "foobar", получим запрос
update config set bitcoin = foobar where id = 1
С точки зрения SQL это обращение к столбцу foobar. Которого, разумеется, нету.

А теперь, внимание, вопрос: какого огурца ты не ознакомился с азами использования СУБД, а именно с синтаксисом подстановки значения?
Читай тут, начиная со слов "Instead, use the DB-API’s parameter substitution". Осознай, и больше так не делай.

Ну и до кучи: что будет, если в bitcoin будет строка вида "0; --"?
update config set bitcoin = 0; -- where id = 1
Всё, что после "--" это комментарий, и будет проигноировано. Т.е. запрос перезапишет весь столбец bitcoin нулями.