To answer three questions:
The NEW keyword refers to the "pseudo-table" for the record to be inserted. In the updated trigger, you can access both "NEW" and "OLD", as well as delete, only "OLD".
Yes, MD5 is used to create a hash. However, in your question, you have a part of the parameter to the enabled "RIGHT" function. This is only MD5(NEW.products_model) (not there , 16) ). And yes, you can replace SHA2 with MD5 if it is available (it is only available if MySQL is configured to support SSL).
RIGHT(string, number) just takes the correct characters 'number' from 'string'. The CONV () function is used to convert numbers between stems. The combination of these last two functions takes the correct 16 hash characters and converts them from base 16 (hexadecimal) to base 10 (decimal).
And the answer is no, you do not need it if all you want to do is save the hash itself.
NEW.model_hash = SHA2(NEW.products_model)
source share