How does emitting a Transfer event in one contract, triggering the "Token Transfers ERC20" in another contract

Hey guys, I am trying to understand a flow of a presale token contract, but I am facing some issues in understanding it.
For this case, there are two contracts that are listening to each other.
The first contract is a presale contract and the second contract is the token contract

Now, down below is the airdrop token function in the token contract(Line 448):

As you can see, it is not using any transfer function, but it only is emitting an event viz. :

for (uint256 i = 0; i < _address.length; i++) {
            emit Transfer(_caller, _address[i], _amount[i]);

And the event is defined here in the line 88 as:

    event Transfer(address indexed from, address indexed to, uint256 value);

Now, my first question is, why does this function logging an event, instead of actually transferring the tokens?
(My assumption was, it's their project, they can decide what to do)
But then I noticed something which raised several questions in my mind.

When, this airdrop function is called in the token contract, it is actually also getting recorded in "Token transfers ERC20" section of the presale contract

Also, here's one transaction hash for your reference:

And one more thing, if the function is only emitting an event, how are the tokens being transferred:

In short, I have these two questions:

  1. How is just emitting a Transfer event able to transfer token?
  2. Nowhere in the airdrop function, there is anything that is interacting to the presale contract, then how is the transactions recorded in that contract?