Not all use cases for the kind of test environment checking that AssumeTestGroupUtil does can handle having ATGU throw an AssumptionViolatedException. Sometimes that may be caught and ignored (e.g. in a ServerSetup); other times it won't be caught and will fail the test (e.g. in a static @Deployment method). For these cases, some form of conditional logic is needed; e.g. turn a ServerSetup method into a no-op or return an 'empty' deployment from the @Deployment method.
So for each 'assumeXXX' method that throws AssumptionViolatedException, there should be a corresponding 'isXXX' method that returns a boolean.
I did some of this downstream to support conditional behavior based on SE version but it seems I never applied it upstream.