The put statement takes (x, y, a), with x, y in um and a in degrees. You can use this as follows (and omit the rotate keyword):
cell_A.put(0, 0, 90)
Some more background. The put() method is one of the few cases where you should only provide values as first entries, and avoid a keyword assignment like x=1, because put() interprets the first 5 positional entries to decide what to do. In addition, there is a set of keywords available like “array” for gds arrays, “scale” for scaling, and “flip” and “flop” for mirroring. These keywords translate into a cell property in gds and you will see their values back when double clicking a cell in e.g. KLayout. See also Cell.put().