Flask выполнит каждый запрос в отдельном потоке или даже в отдельных процессах. Количество потоков и процессов, которые нужно создать, определяется сервером WSGI (например, Apache с mod_wsgi).
Если вы используете SQLAlchemy ScopedSessions, сеанс будет полностью поточно-ориентированным. Вы не должны делиться объектами, контролируемыми ORM, между потоками (но в большинстве случаев вы не дадите вашим объектам жить дольше, чем запросу, так что обычно это не представляет проблемы).
Другими словами, если вы не собираетесь делить состояние между запросами, отличными от базы данных или файлов cookie, вам не нужно беспокоиться о проблемах параллелизма. Вам не нужно создавать блокировку для записи в базу данных.
Если вы создаете свои собственные долгоживущие объекты в вашем приложении, что вам, скорее всего, не нужно, и если эти объекты взаимодействуют или совместно используют состояние с кодом обработки запросов, то вы должны принять соответствующие меры предосторожности, чтобы избежать проблем с синхронизацией (условия гонки, взаимоблокировки, использование библиотек, которые не являются поточно-ориентированными, и т.