Is it possible to have a C++ function auto populate in the event graph like BeginPlay and Tick?

If you look in Actor.h you will find that BeginPlay is set up this way:

»   /** Event when play begins for this actor. */                                                                                                     »   UFUNCTION(BlueprintImplementableEvent, meta=(DisplayName = "BeginPlay"))                                                                          
»   void ReceiveBeginPlay();                                                                                                                                                                                                                                                                                
»   /** Overridable native event for when play begins for this actor. */                                                                              
»   virtual void BeginPlay();                                                                                                                         

So, mark your function as UFUNCTION(BlueprintImplementableEvent) and it will be possible to implement in the event graph. Note the specific behavior here where the display name is just BeginPlay and there is a separate C+±only virtual function of that same name. This is a pattern that comes back in a few places.

The documentation for function specifiers talks more about BlueprintImplementableEvent and others: