Util function pre-request scripts in collection doesn't execute update variable

I have below utils function in a pre-request scripts in a collection

utils = {
    setCreateUpdate: function (json_body, uri_var){
        uri_value = pm.environment.get(uri_var);
        console.log(`Variable:${uri_var} with value:${uri_value}`);
            json_body.id = uri_value;
            pm.request.method = "PUT";
            pm.request.method = "POST";
        pm.environment.set("json_body", JSON.stringify(json_body));

pm.environment.set doesn’t work in the function but it works if I return the value and set in the “pre-request script” of the request.

Is there any limitation context where global or collection functions can’t update variable?