title: How to handle IO in discord.py
body: <p>i am new to asyncio coding, i had a question about how to handle IO in the asyncio event loop.</p>
  <p>Given some sort of asynchronous IO stream or session (aiologger, asynchronous sqlalchemy), whenever I await it to send or commit, the event loop jumps out of that local function and into some other function. Cant this lead to IO collisions, like I start a sqlalchemy session, await to add something and the event loop might hop on to another command which begins another session but the other session is already started. Can this even happen in a application because I doubt it does, and if it does how is it usually handled?</p>