Simply trap the exception (== fatal warning), that's more straight-forward than monkey-patching Tree at run-time. Wrap the statement calling add_child in eval {} or use an exception handler like Try::Tiny.
Comment on Re: Turn off FATAL warnings in 3rd party module