Indeed, it seems those functions not available in the higher level API yet. Something along these lines may do the job for you:
def bvadd_no_overflow(x, y, signed=False):
assert x.ctx_ref()==y.ctx_ref()
a, b = z3._coerce_exprs(x, y)
return BoolRef(Z3_mk_bvadd_no_overflow(a.ctx_ref(), a.as_ast(), b.as_ast(), signed))
Here's an example of using this function, which works for me:
q = BitVec('q', 32)
r = BitVec('r', 32)
s.add(bvadd_no_overflow(q, r))
print(s)
which prints
[Extract(32, 32, ZeroExt(1, q) + ZeroExt(1, r)) == 0]
(Internally, this is represented as taking the + of two bit-vectors and then extracting the most significant bit.)