Hi @Frankie,
you could provide a “proxy” Transfer contract which has a choice which atomically transfer the holding + spawns a comment/reference contract instance (capturing the purpose of the actual transfer).
See Solution 3 in this thread:
I hope that helps!
Johan