If it is EPDM rubber I would just coat it with an acrylic coating. My roof is 25 years old and I just coated it for the second time and it has never leaked. The EPDM rubber has a white surface coat and wear off in time leaving the black under coating. The coatings also wear off after time which is OK. Hengs, Coolseal, Henry's, Bus coat, Rustoleom etc all make acrylic coatings. I used Coolseal in 2006 and it looked good for about 5 years then started to wear off but I only had enough for 1 coat plus a primer coat. I applied 2 coats of Rustoleam acrylic coating this year and used a gal and a half. The cost was only $20/gal which was much cheaper than the other brands and did not require a primer coat. TPO is a thermoplastic material and much more durable unless it is cut or leaks I would just wash it.