It is indeed useless in your example.
It is sometimes helpful if you want a block to be empty, something not otherwise allowed by Python. For instance, when defining your own exception subclass:
class MyException(Exception):
pass
Or maybe you want to loop over some iterator for its side effects, but do nothing with the results:
for _ in iterator:
pass
But most of the time, you won't need it.
Remember that if you can add something else that isn't a comment, you may not need pass. An empty function, for instance, can take a docstring and that will work as a block:
def nop():
"""This function does nothing, intentionally."""