You can't modify the incoming UserStatus reference, because Java is pass by value, but you can change its state if it's mutable.
public class UserStatus {
    private String status;
    public static void main(String [] args) {
        String name = ((args.length > 0) ? args[0] : "stas");
        User user = new User(name);
        UserStatus status = new UserStatus();
        System.out.println(String.format("before: user %s status %s\n", user.toString(), status.toString()));
        user = insertNewUser(user, status);
        System.out.println(String.format("after : user %s status %s\n", user.toString(), status.toString()));
    }
    public static User insertNewUser(User user, UserStatus status) {
        User newUser = new User(user.getName() + "-changed");
        status = new UserStatus("SUCCESS"); // Won't work as expected because Java is pass by value
        //status.setStatus("SUCCESS");  // Uncomment this and see that it's the only way to change the status flag
        return user;
    }
    public UserStatus() { this.status = "UNKNOWN"; }
    public UserStatus(String value) { this.status = value; }
    public String getStatus() { return this.status; }
    public void setStatus(String status) { this.status = status; }
    public String toString() { return this.status; }
}
class User {
    private final String name;
    public User(String name) { this.name = name; }
    public String getName() { return this.name; }
    public String toString() { return this.name; }
}