If we proceed from the assumption that the missing data are not rare, and parsing with and add to the database takes tangible time, and the user can wait, I would probably do the following.
1) had a persistent job queue, for example, using Redis or would existing base.
2) through the mechanism PeriodicCallback
periodically checks this queue and ...
3) start parsing using Subprocess or joblib
You can do it all and inside the Tornado, adding tasks in IOLoop - but there is a risk that at some point the server will be busy mainly with parsing, not processing requests from the frontend.