Events need C++ code in order to forward call in to Blueprint, thats why BlueprintImplementableEvent is generating definition of function and you can not redefine it. There is other option called BlueprintNativeEvent it works the same just it also define function in C++ but with _Implementation suffix in function name, which is called when blueprint don’t override the event.