No. The push method doesn't have any side effect; the only thing that it does is to append a value to the end of the vector.
What your code is doing is the following (annotated with comments):
fn main() {
let mut x = vec![0;10]; // Create a mutable vector with 10 elements of value 0.
let mut counter = 0; // Define a mutable variable named counter, which is an integer and its initial value is 0
for i in 0..10 { // Loop through the following code 10 times (from i == 0 until i == 9).
if (i % 2) == 0 { // Conditional branch met if the remainder of i divided by 2 is 0
x.push(i); // Push the value of i to the vector "x"
println!("{}",x[counter]); // print the value of the element in vector "x" at the position of the current value of the variable "counter"
counter+=1; // Increment counter by 1
}
} // End of the conditional branch
} // End of the loop