Is there a way to animate a material differently for object that has it? I want these blossoms to turn pink one after another
If you just want to stagger when the blossoms start changing colors, you can use a node set up like this one:

The value node is keyframed to 0 at frame 1 and 2 at the frame when you want them to have finished changing colors.
This is what that would look like over 60 frames @ 15fps.
The random input generates a number between 0 and 1. That is our offset for when the object's color starts changing. The color ramp takes an input between 0 and 1 (if the input is greater than 1, then it is treated as 1) and outputs a color based on that. If you didn't stagger the color changes, then you could just animate the color ramp input from 0 to 1. The subtract node is used so that the random number from the object info node delays when the animated value (which is animated from 0 to 2, so that even if the random value is 1, at the end of the animation, its input to the color ramp is 1) reaches 1, which is the final color on the color ramp.
Also, I would recommend going into the dope sheet, selecting the key frames for the material, and setting the interpolation to linear.
That said, I'm not sure how to ensure that the blossoms change colors only one at a time without using multiple materials.