it does not completely stop the absorbtion of color, or chemical processes but it does slow it down. this is why when people get there hair permed or relaxed they typically coat the scalp with some product to prevent the chemicals from burning you, and in relaxing, the length of the hair is coated when you are doing a root touch up to help prevent the relaxent from soaking into the hair that has been previously been treated, and to prevent over processing.
if you are going to use this i would suggest something a little thicker than olive oil, like coconut oil or something since it will be easier to apply and keep away from the hair that you want to dye. You could also use conditioner