Каждое сообщение обрабатывается в отдельном потоке, т.е. подключение (connect) должны делать в каждом обработчике @bot.message_handler
для sqlite еще потребуется семафоры (fcntl.flock), т.к локальная СУБД плохо "разруливает" блокировки
lock_bd=open(os.path.join(os.path.dirname(os.path.realpath(__file__)),'db','database.lock'),'a')
fcntl.flock(lock_bd,fcntl.LOCK_EX)
conn = sqlite3.connect('db/database.db', check_same_thread=False)
cursor = conn.cursor()
....
cursor.close()
conn.close()
lock_bd.close()