Некорректно записываются данные в БД от пользователей при одновременном использовании Бота

Если пользователи нажимают кнопку "Добавить в заказ" одновременно, то в бд происходит некорректная запись. Пример Пользователи 1 и 2 одновременно нажимают кнопку. Пользователю 2 записывается в заказ "морс морс", сумма также равна 2шт морса.

@bot.callback_query_handler(func=lambda call: call.data == 'mors_k_05_1sht')
def mors_k_05_1sht(call):
    markup = types.InlineKeyboardMarkup()
    btn1 = types.InlineKeyboardButton('Продолжить заказ ' + '➡️', callback_data='menu')
    markup.row(btn1)
    btn2 = types.InlineKeyboardButton('Ваш заказ' + '?', callback_data='buy')
    markup.row(btn2)
    btn3 = types.InlineKeyboardButton('⬅️' + ' Назад', callback_data='mors_k_05')
    markup.row(btn3)
    photo_url = 'https://static.tildacdn.com/stor3238-3233-4030-b961-393331613832/96753182.jpg'
    price_mors_k_05_1sht = 98
    name = "Натуральный клюквенный морс 0,5 л - 98₽"

    def get_chat_id(call):
        return call.message.chat.id

    chat_id = get_chat_id(call)

    conn = sqlite3.connect('admin.db')
    cursor = conn.cursor()

    # Получаем количество записей в таблице
    cursor.execute("SELECT COUNT(*) FROM users")
    count = cursor.fetchone()[0]

    # Получаем текущее значение поля Заказ
    cursor.execute("SELECT Заказ FROM users WHERE ROWID = (SELECT MAX(ROWID) FROM users)")
    previous_order = cursor.fetchone()[0]

    # Получаем текущее значение поля Сумма
    cursor.execute("SELECT Сумма FROM users WHERE ROWID = (SELECT MAX(ROWID) FROM users)")
    sum_order = cursor.fetchone()[0]


    # Объединение текущего значения с новым значением
    #Заказ
    if previous_order is not None:
        new_order = previous_order + " " + name
    else:
        new_order = name
    #Сумма
    if sum_order is not None:
        new_sum_order = sum_order + price_mors_k_05_1sht
    else:
        new_sum_order = price_mors_k_05_1sht


    # Обновление записи в базе данных
    if count > 0:
        cursor.execute(f"UPDATE users SET Заказ = '{new_order}', "
                       f"Сумма = '{new_sum_order}' WHERE ROWID = (SELECT MAX(ROWID) FROM users)")
    else:
        cursor.execute(f"INSERT INTO users (chat_id, Заказ, Сумма) "
                       f"VALUES ({chat_id}, '{new_order}', '{new_sum_order}')")



    conn.commit()
    conn.close()

    #Добавляем задержку


    bot.edit_message_media(chat_id=chat_id, message_id=call.message.message_id,
                           media=types.InputMediaPhoto(photo_url), reply_markup=markup)
    bot.edit_message_caption(chat_id=chat_id, message_id=call.message.message_id,
                             caption='<u>Натуральный клюквенный морс 0,5 л</u>'
                                     '\n<b>ДОБАВЛЕНО В ЗАКАЗ</b>', parse_mode='html', reply_markup=markup)

Ответы (0 шт):