Are &e and !e lookahead expressions only for speed up in the Python PEG grammar?

I’m working on an implementation to transform the current Python PEG grammar to an ANTLR4 grammar.
The PEG grammar has a lot of &e and !e lookahead expressions.
My impression is that these expressions have no grammatical role.
I think that they are included in the PEG grammar only to increase the parsing speed as there is a reference to this in the comment of the following rule:

simple_stmts:
    | simple_stmt !';' NEWLINE  # Not needed, there for speedup
    | ';'.simple_stmt+ [';'] NEWLINE

Furthermore, if I omit the implementation of lookahead expressions (by semantic predicates in ANTLR4) from the translated ANTLR4 grammar, it seems to me that it parses the Python source codes without any problems.
Do I understand these correctly?

Fixed that the !“_” lookahead expression is definitely required in the following rule:

pattern_capture_target:
    | !"_" NAME !('.' | '(' | '=')

I think this is where it has grammatical significance.