Yes, AK::SoundEngine::PrepareEvent() keeps a ref count of prepared events. This means that if AK::SoundEngine::PrepareEvent() has been called 3 times to prepare a given event, it must be called 3 times to unprepare it before it is actually unloaded. This is useful if the same event can be prepared/unprepared in several places in your game code: You do not need to keep track of the prepare/unprepare calls since the sound engine does it for you.
Related topic: LoadBank / UnloadBank do NOT keep a refcount of loaded soundbanks. If a bank is already loaded, a second LoadBank for the same bank has no effect, so the next UnloadBank WILL unload the bank immediately.