pygame.transform.rotate will not rotate the Surface in place, but rather return a new, rotated Surface. Even if it would alter the existing Surface, you would have to blit it on the display surface again.
What you should do is to keep track of the angle in a variable, increase it by 90 every 10 seconds, and blit the new Surface to the screen, e.g.
angle = 0
...
while True:
...
elif end - new > 10:
...
# increase angle
angle += 90
# ensure angle does not increase indefinitely
angle %= 360
# create a new, rotated Surface
surf = pygame.transform.rotate(image_surf, angle)
# and blit it to the screen
display_surf.blit(surf, (640, 480))
...